import os
from urllib.parse import quote_plus

class Config:
    """
    基础配置类，所有环境的通用配置都放在这里。
    """
    # Flask-SQLAlchemy 配置
    # 防止在未使用时发出警告
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # 数据库连接信息
    # 警告：在生产环境中，密码等敏感信息应通过环境变量加载，而不是硬编码。
    DB_USER = os.environ.get('DB_USER') or 'root'
    DB_PASS = os.environ.get('DB_PASS') or 'PAssw0@d'
    DB_HOST = os.environ.get('DB_HOST') or '124.70.207.214'
    DB_PORT = os.environ.get('DB_PORT') or '3306'
    DB_NAME = os.environ.get('DB_NAME') or 'bt-suite'
    
    # 修复：对密码中的特殊字符进行URL编码，以防止连接字符串解析错误
    encoded_pass = quote_plus(DB_PASS)
    
    # 完整的数据库连接URI
    # 注意：mysql+mysqlconnector 是 SQLAlchemy 连接 MySQL 的标准方言
    SQLALCHEMY_DATABASE_URI = (
        f'mysql+mysqlconnector://{DB_USER}:{encoded_pass}@{DB_HOST}:{DB_PORT}/{DB_NAME}'
    )

    # 在这里可以添加其他全局配置
    # 例如：SECRET_KEY = os.environ.get('SECRET_KEY') or 'a-very-secret-key'

# 可以为不同环境创建不同的配置类
# class ProductionConfig(Config):
#     DEBUG = False

# class DevelopmentConfig(Config):
#     DEBUG = True 